package com.heima.job.task;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
@Slf4j
public class DemoTask {

    @XxlJob("demoJobHandler")
    public void demo01(){
        log.info("demo01 invoked....");
    }

    @XxlJob("sharding")
    public void demo02(){
        log.info("demo02 invoked....");
        //1. 获取当前节点的分片位置 以及总的分片数量
        int index = XxlJobHelper.getShardIndex(); //当前节点需要处理的分片
        int shardTotal = XxlJobHelper.getShardTotal(); //总的分片数
        //2. 模拟一些任务数据
        List<Integer> list = getList();
        //3. 遍历每一个任务 并找出当前节点需要处理的任务
        for (Integer integer : list) {
            if(integer % shardTotal == index){
                System.out.println("index处理的数据: " + integer);
            }
        }

    }

    public List<Integer> getList(){
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10000; i++) {
            list.add(i);
        }
        return list;
    }
}
